{extend name="index:layout" /}

{block name="menu"}{/block}

{block name="content"}
<script type="text/javascript">
<!--
if (navigator.userAgent.indexOf("MSIE") >= 0) {
	alert("请使用谷歌或火狐访问.其它浏览器无法操作与使用");
}
//-->
</script>
<form name="formlist" method="post" action="" class="up_files">
<div class="MainContainers">
  <div class="Header"><span class="tag">在线升级</span><span class="more">&gt;&gt;</span></div>
  <div class="Conter">


<table class="ListTable">
   <tr> 
        <th width='11%'>选择</th>
        <th width='32%'>文件名称</th>
      <th width='17%'>升级前时间</th>
      <th width='21%'>更新时间</th>
      <th width='19%'>查看新文件</th>
    </tr>




  <tr id="contents">
    <td colspan=5 height=30 style="background:#eee;">
      <div align="center" style="color:red;" class="upgrade_msg">正在获取云端数据信息,请稍候...</div>
    </td>
  </tr>
 
    <tr bgcolor='#FFFFFF' align="center" class="up_btn" style="display:none;"> 
      <td colspan='5'>
        <div class='submits'>
          <input type='button' onclick="CheckAll(this.form)" name='Submit' value='全选'>
          <input type='button' style="background:red;" onclick="sys_upgrade();" name='Submit' value='立刻升级'>          
        </div>
        </td>
  </tr> 
  </table>

  </div>
</div>
</form>

<div class="MainContainers">
  <div class="Header"><span class="tag">升级说明</span></div>
  <div class="Conter">
    <ul class="notes">
      <li>1、你可以选择哪些文件不升级,不过你最好是在程序目录,把不想升级的文件,做个标志,比如index.htm不想升级,就在对应的目录创建一个文件index.htm.lock</li>
  <li>2、如果网络故障,一次升级不成功,可反复升级</li>
  <li>3、如果你二次开发过的文件被替换了,请进目录/runtime/bakfile/找回来</li>
  
    </ul>
  </div>
</div>
<script language=JavaScript>
var upgrade_edition='';
//检查版本更新
function check_upgrade(){
	var now_edition = "{$upgrade.md5}";
	$.get("https://x1.php168.com/appstore/upgrade/get_edition.html?"+Math.random(),function(res){
		if(res.code==0){
			if(res.data.md5!=now_edition){
				upgrade_edition = res.data.md5;
				var msg = '你的系统需要升级<br>云端更新日期:'+res.data.time;
				$(".upgrade_msg").html(msg);
				layer.confirm(msg, {
					btn : [ '查看需要升级的文件', '晚点再升级' ]
				}, function(index) {
					down_file_list();
				});
			}else{
				$(".upgrade_msg").html('已经是最新了,无须升级');
			}
		}else{
			layer.alert(res.msg,{time:5500});
		}
	}).fail(function (res) {
		layer.alert('网络故障,请晚点再偿试升级!!');
	});
}
check_upgrade();

//下载文件列表,核对需要哪些更新
function down_file_list(){
	layer.alert('需要一点时间,请稍候,正在从云端下载升级文件列表');
	var index = layer.load(1,{shade: [0.7, '#393D49']}, {shadeClose: true}); //0代表加载的风格，支持0-2
	$.get("{:urls('check_files')}?upgrade_edition="+upgrade_edition,function(res){
		layer.closeAll();
		if(res.code==0){
			var str = '';
			res.data.forEach(function(rs){
				str +='<tr>'+
						  '<td class="b red"> <input type="checkbox" name="filedb[]" value="'+rs.file+'"checked></td>'+   
						  '<td class="Left">'+rs.file+'</td>'+   
						  '<td><div align="center">'+rs.ctime+'</div></td>'+
						  '<td>'+rs.time+'</td>'+
						  '<td><a href="{:urls("view_file")}?filename='+rs.file+'" target="_blank">查看</a></td>'+
					  '</tr>';
			});
			//$(".contents").html(str);
			document.getElementById('contents').outerHTML=str;
			$(".up_btn").show();
			layer.alert('需要升级的文件列表如下,你可以有选择性的升级');
		}else{
			layer.alert(res.msg,{time:5500});
		}
	}).fail(function (res) {
		layer.closeAll();
		layer.alert('通信失败,可能你的后台权限不足');
	});
}

//开始升级文件
function sys_upgrade(){
	$(".up_files input[type='checkbox']").each(function(i){
		if($(this).is(':checked')==true){
			ckfile_num++;
		}
	});
	
	layer.alert('正在升级文件,请耐心稍候...');
	var index = layer.load(1,{shade: [0.7, '#393D49']}, {shadeClose: true}); //0代表加载的风格，支持0-2

	$(".up_files input[type='checkbox']").each(function(i){
		if($(this).is(':checked')==true){
			upgrade_file($(this).val(),$(this).parent().next());	//一个一个的文件升级
		}
	});
}

//全部升级完毕
function end_up(){
		layer.msg('全部文件升级成功');
		$.get("{:urls('sysup')}?upgrade_edition="+upgrade_edition,function(res){
			if(res.code==0){			
				layer.alert('本次升级完毕,'+ok_num+'个文件升级成功!');
			}else{
				layer.alert('升级信息写入失败');
			}
		});

}

var ckfile_num = 0;	//选中的升级文件个数
var ok_num = 0;	//成功升级文件个数
//一个一个的文件升级
function upgrade_file(filename,obj){	
	$.get("{:urls('sysup')}?filename="+filename,function(res){
		
		if(res.code==0){			
			//layer.msg('文件:'+filename+' 升级成功');
			var str = obj.html()+' <font color="red">升级成功</font>';
			obj.html(str);
			ok_num++;
			if(ok_num==ckfile_num){	//全部升级完毕
				layer.closeAll();
				end_up();
			}
		}else{
			//layer.msg('文件:'+filename+' 升级失败:'+ res.msg,{time:2500});
			var str = obj.html()+' <font color="blue">升级失败:'+res.msg+'</font>';
			obj.html(str);
		}
	}).fail(function (res) {
		layer.alert('通信失败,可能你的后台权限不足');
	});
}



function CheckAll(form){
	for (var i=0;i<form.elements.length;i++){
		var e = form.elements[i];
		e.checked == true ? e.checked = false : e.checked = true;
	}
}

</script>
{/block}
